﻿using Admin.NET.Core;
using Admin.NET.Friend.Enum;
using SqlSugar;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Friend.Entity
{
    /// <summary>
    /// 会员表
    /// </summary>
    [SugarTable(null, "会员表")]
    public partial class LoveMember : EntityBase
    {
        /// <summary>
        /// 编号
        /// </summary>
        [SugarColumn(ColumnDescription = "编号", Length = 32)]
        [MaxLength(64)]
        public required string Code { get; set; }

        /// <summary>
        /// 账号
        /// </summary>
        [SugarColumn(ColumnDescription = "账号", Length = 32)]
        [Required, MaxLength(32)]
        public virtual required string Account { get; set; }

        /// <summary>
        /// 密码
        /// </summary>
        [SugarColumn(ColumnDescription = "密码", Length = 512)]
        [MaxLength(512)]
        [Newtonsoft.Json.JsonIgnore]
        [System.Text.Json.Serialization.JsonIgnore]
        public virtual required string Password { get; set; }

        /// <summary>
        /// 昵称
        /// </summary>
        [SugarColumn(ColumnDescription = "昵称", Length = 32)]
        [MaxLength(32)]
        public virtual required string NickName { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        [SugarColumn(ColumnDescription = "真实姓名", Length = 32)]
        [MaxLength(32)]
        public virtual string? RealName { get; set; }

        /// <summary>
        /// 性别-男_1、女_2
        /// </summary>
        [SugarColumn(ColumnDescription = "性别")]
        public GenderEnum Gender { get; set; } = GenderEnum.Male;

        /// <summary>
        /// 年龄
        /// </summary>
        [SugarColumn(ColumnDescription = "年龄")]
        public int Age { get; set; }

        /// <summary>
        /// 出生日期
        /// </summary>
        [SugarColumn(ColumnDescription = "出生日期")]
        public DateTime? Birthday { get; set; }

        /// <summary>
        /// 民族
        /// </summary>
        [SugarColumn(ColumnDescription = "民族", Length = 32)]
        [MaxLength(32)]
        public string? Nation { get; set; }

        /// <summary>
        /// 手机号码
        /// </summary>
        [SugarColumn(ColumnDescription = "手机号码", Length = 16)]
        [MaxLength(16)]
        public string? Phone { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        [SugarColumn(ColumnDescription = "邮箱", Length = 64)]
        [MaxLength(64)]
        public string? Email { get; set; }

        /// <summary>
        /// QQ号
        /// </summary>
        [SugarColumn(ColumnDescription = "QQ号", Length = 32)]
        [MaxLength(32)]
        public string? QQ { get; set; }

        /// <summary>
        /// 微信号
        /// </summary>
        [SugarColumn(ColumnDescription = "微信号", Length = 64)]
        [MaxLength(64)]
        public string? WeChat { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        [SugarColumn(ColumnDescription = "证件类型")]
        public CardTypeEnum CardType { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        [SugarColumn(ColumnDescription = "身份证号", Length = 32)]
        [MaxLength(32)]
        public string? IdCardNum { get; set; }

        /// <summary>
        /// 学历
        /// </summary>
        [SugarColumn(ColumnDescription = "学历")]
        public CultureLevelEnum CultureLevel { get; set; }

        /// <summary>
        /// 毕业院校
        /// </summary>COLLEGE
        [SugarColumn(ColumnDescription = "毕业院校", Length = 128)]
        [MaxLength(128)]
        public string? College { get; set; }

        /// <summary>
        /// 婚姻状况
        /// </summary>
        [SugarColumn(ColumnDescription = "婚姻状况")]
        public MaritalStatusEnum MaritalStatus { get; set; }

        /// <summary>
        /// 身高
        /// </summary>
        [SugarColumn(ColumnDescription = "身高")]
        public int Height { get; set; }

        /// <summary>
        /// 体重 
        /// </summary>
        [SugarColumn(ColumnDescription = "体重 ")]
        public int Weight { get; set; }

        /// <summary>
        /// 星座
        /// </summary>
        [SugarColumn(ColumnDescription = "星座")]
        public ConstellationEnum Constellation { get; set; }

        /// <summary>
        /// 居住地址
        /// </summary>
        [SugarColumn(ColumnDescription = "居住地址", Length = 256)]
        [MaxLength(256)]
        public string? Address { get; set; }

        /// <summary>
        /// 工作地址
        /// </summary>
        [SugarColumn(ColumnDescription = "工作地址", Length = 256)]
        [MaxLength(256)]
        public string? WorkAddress { get; set; }

        /// <summary>
        /// 家乡
        /// </summary>
        [SugarColumn(ColumnDescription = "家乡", Length = 256)]
        [MaxLength(256)]
        public string? Hometown { get; set; }

        /// <summary>
        /// 脱单目标
        /// </summary>
        [SugarColumn(ColumnDescription = "脱单目标")]
        public DatingGoalEnum DatingGoal { get; set; }

        /// <summary>
        /// 感情状态
        /// </summary>
        [SugarColumn(ColumnDescription = "感情状态")]
        public EmotionalStatusEnum EmotionalStatus { get; set; }

        /// <summary>
        /// 职业
        /// </summary>
        [SugarColumn(ColumnDescription = "职业")]
        public OccupationEnum Occupation { get; set; }

        /// <summary>
        /// 行业
        /// </summary>
        [SugarColumn(ColumnDescription = "行业")]
        public IndustryEnum Industry { get; set; }

        /// <summary>
        /// 单位类型
        /// </summary>
        [SugarColumn(ColumnDescription = "单位类型")]
        public CompanyTypeEnum? CompanyType { get; set; }

        /// <summary>
        /// 月薪
        /// </summary>
        [SugarColumn(ColumnDescription = "月薪")]
        public MonthlySalaryEnum? MonthlySalary { get; set; }

        /// <summary>
        /// 年薪
        /// </summary>
        [SugarColumn(ColumnDescription = "年薪")]
        public AnnualSalaryEnum? AnnualSalary { get; set; }

        /// <summary>
        /// 住房情况
        /// </summary>
        [SugarColumn(ColumnDescription = "住房情况")]
        public HouseStatusEnum HouseStatus { get; set; }

        /// <summary>
        /// 购车情况
        /// </summary>
        [SugarColumn(ColumnDescription = "购车情况")]
        public CarStatusEnum CarStatus { get; set; }

        /// <summary>
        /// 子女情况
        /// </summary>
        [SugarColumn(ColumnDescription = "子女情况")]
        public ChildrenStatusEnum ChildrenStatus { get; set; }

        /// <summary>
        /// 是否吸烟
        /// </summary>
        [SugarColumn(ColumnDescription = "是否吸烟")]
        public SmokingEnum? Smoking { get; set; }

        /// <summary>
        /// 是否饮酒
        /// </summary>
        [SugarColumn(ColumnDescription = "是否饮酒")]
        public DrinkingEnum? Drinking { get; set; }

        /// <summary>
        /// 个人简介
        /// </summary>
        [SugarColumn(ColumnDescription = "个人简介", Length = 512)]
        [MaxLength(512)]
        public string? Introduction { get; set; }

        /// <summary>
        /// 爱情宣言
        /// </summary>
        [SugarColumn(ColumnDescription = "爱情宣言", Length = 512)]
        [MaxLength(512)]
        public string? LoveDeclaration { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        [SugarColumn(ColumnDescription = "排序")]
        public int OrderNo { get; set; } = 100;

        /// <summary>
        /// 备注
        /// </summary>
        [SugarColumn(ColumnDescription = "备注", Length = 128)]
        [MaxLength(128)]
        public string? Remark { get; set; }

        /// <summary>
        /// 状态
        /// </summary>
        [SugarColumn(ColumnDescription = "状态")]
        public StatusEnum Status { get; set; } = StatusEnum.Enable;
    }
}
